using System;
using System.Collections.Generic;
using System.Text;
using SharpMud.MudLib.Common.Entities.Players;
using SharpMud.MudLib.Common.Environment;
using SharpMud.Server.Systems.Net.Telnet;
using SharpMud.MudLib.Common.Resourcing;
using SharpMud.Server.App;
using SharpMud.Server.Systems;
using SharpMud.MudLib.Common.Entities.Players.Session;

namespace SharpMud.MudLib.Common
{
    public interface IBaseMudLibRoot : IServerSystemHost, IGuidIdentifiedResourceHost, IUriIdentifiedResourceHost
    {
        AppStatus                           ServerStatus        { get;}

        IPlayerManager                      PlayerManager       { get;}
        IEnvironmentManager                 EnvironmentManager  { get;}
        TelnetServer<TelnetPlayerSession>   TelnetServer        { get;}

        string GetSubfolderIntelligently(string parentFolder, string possibleSubfolder);
        string GetSubfolderIntelligently(string parentFolder, params string[] possibleSubfolders);
        string GetSubfileIntelligently(string parentFolder, string possibleSubfile);
    }
}
